The present invention relates to convolutional coding for data communications, and more particularly to a convolutional code that is scrambled by a pseudo-random (PN) sequence to rotate selected, transmitted symbols by 90 degrees.
Current network communications systems generally utilize a layered, packet-based approach for transmitting data, although a non-packet based (i.e., continuous) data format may also be used. In such networks, the purpose of each layer is to offer particular services to the higher layers. Each layer is shielded from the details of how the services are actually implemented. The lowest layer is the physical layer (PHY), which is concerned with transmitting raw bits over a communication channel. The goal of the physical layer is to make sure that when the transmitted bit is a xe2x80x9c1xe2x80x9d, it is decoded by the receiver as a xe2x80x9c1xe2x80x9d and not as a xe2x80x9c0xe2x80x9d, and vice-versa.
One technique for communicating data over the physical layer is known as trellis coded modulation (TCM). TCM is a combined Forward Error Correction (FEC) coding and modulation scheme that utilizes an underlying convolutional code applied to certain bits of M-ary Phase Shift Keyed (MPSK) or M-ary Quadrature Amplitude Modulation (MQAM) symbol mappings. The utility of TCM is in providing an increased data rate over bandlimited channels using straightforward decoding hardware. See, e.g., Viterbi, Andrew et. al., xe2x80x9cA Pragmatic Approach to Trellis-Coded Modulation,xe2x80x9d IEEE Communications Magazine, July 1989, pp. 11-19.
Currently, various convolutional codes are under discussion for use in a high-speed PHY that operates, e.g., at a carrier frequency of 2.4. GHz. It would be advantageous to introduce such a code that produces improved performance in terms of signal to noise ratio (SNR) and multi-path rejection. The provision of such a code would advantageously allow the high-speed PHY to be used in a greater range of applications than would be possible with previously proposed techniques, such as complementary code key (CCK) modulation.
It would be further advantageous to provide a binary convolutional code that generates sufficient gain to enable improved range, improved throughput, and reduced transmission delay. Moreover, an encoder for such a code should have low computational complexity. Still further, it would be advantageous if the mechanism for using such a code would be similar to the multi-rate mechanism already provided for supporting optional rates set forth in the IEEE 802.11b wireless local area network standard.
The present invention provides a binary convolutional code having the aforementioned and other advantages.
In accordance with the present invention, a method is provided for convolutionally encoding digital data for transmission over a communication channel. In a first embodiment, the data are processed using a 64-state, rate 1/2 binary convolutional code based on octal generators 133, 175 to provide binary convolutional coded codewords. The codewords may be scrambled prior to transmission over the communication channel.
In a preferred embodiment, the codewords are encoded jointly onto in-phase (I) and quadrature (Q) channels. The codeword bits are mapped to a constellation according to a binary pseudo-random scramble sequence (also referred to as a cover sequence). In the event that a bit of the scramble sequence corresponding to a particular codeword bit has a binary value of, e.g., zero, the constellation is maintained in a current relationship with respect to the constellation axes. In the event that the corresponding bit of the scramble sequence has the opposite binary value (e.g., one), the constellation is rotated by ninety degrees, e.g., in a counterclockwise direction.
The scramble sequence can be generated from a seed sequence such as the sequence 0011001110001011, where the first bit of the sequence in time is the left most bit.
Apparatus is disclosed for encoding data for use in digital communications systems. The apparatus includes a binary convolutional encoder and a scrambler for scrambling codewords provided by the encoder prior to transmission over a communication channel. In an illustrated embodiment, the scrambler is responsive to a scramble pattern generator.
In a second embodiment, the data are processed using a 64-state, rate 2/3 binary convolutional code based on octal generators       (                                        21            ,            02            ,            12                                                            10            ,            25            ,            12                                )    "AutoRightMatch"
to provide binary convolutional coded codewords.
The generator matrix xe2x80x9cGxe2x80x9d for the rate 2/3 code can comprise:       G    ⁢          xe2x80x83        ⁢          (      D      )        =      [                                                      D              4                        +            1                                    D                                                    D              3                        +            D                                                            D            3                                                              D              4                        +                          D              2                        +            1                                                              D              3                        +            D                                ]  
In octal notation, this matrix is defined as   G  =            (                                                  21              ,              02              ,              12                                                                          10              ,              25              ,              12                                          )        .  
A block diagram illustrating one possible, implementation for the BCC rate 2/3 encoder 50 is illustrated in FIG. 6. The illustrated encoder consists of separate paths for the two input bits m0 (the least significant bit) and m1 (the most significant bit). The path for m0 comprises four delay elements 60, which can simply comprise memory registers as well known in the art. The path for m1 comprises four additional delay elements 62. As indicated above, for every two bits (m0, m1) input, three bits are generated at the encoder output. The three output bits are designated x0, x1 and x2, where x0 is the least significant bit (1sb) and x2 is the most significant bit (msb). Modulo-2 adders 64 are connected to specific outputs of the delay elements to implement the desired generator matrix which, in the case illustrated by FIG. 5, is represented in octal as   G  =            (                                                  21              ,              02              ,              12                                                                          10              ,              25              ,              12                                          )        .  
The output of the BCC is mapped to a constellation using, e.g., 8 PSK. An example 8 PSK constellation is shown in FIG. 7. Each triplet of output bits (000, 001, 010, 011, 100, 101, 110 and 111) from the BCC is used to produce one symbol. As with the embodiments of FIGS. 1-4, the mapping from BCC outputs to PSK constellation points in the 8 PSK mode is determined by the pseudo-random scramble sequence generated by scramble pattern generator 14. If the value of the scramble sequence is equal to one, then the constellation is rotated, e.g., counter-clockwise by ninety degrees relative to the constellation that is provided for a scramble sequence value of zero. As shown in FIG. 7, the constellation for S=1 ifs rotated by ninety degrees with respect to the corresponding constellation for S=0. The pseudo-random sequence can be the same as described above in connection with the embodiments of FIGS. 1-4.
It should now be appreciated that the present invention provides various new and unique binary convolutional coding schemes. Moreover, an inventive scheme is disclosed for scrambling the encoded data prior to transmission over a communication channel. The scrambling assures that delayed versions of the codeword will not xe2x80x9clookxe2x80x9d like codewords to the receiver. Instead, they will look like uncorrelated noise, which improves multi-path immunity. A PN-sequence generator can be easily implemented for use in providing the scramble sequence. It is noted that long scramble sequence will improve performance with respect to co-channel interference.
The invention further provides new BCC generator structures, which can advantageously be used with the disclosed scramble sequence. Moreover, long sequences are generated from a shorter seed sequence through cyclic shifts. The concept of scrambling by rotating the constellation (e.g., by 90xc2x0) is also unique.
Although the invention has been described in connection with various preferred embodiments, it should be appreciated that numerous modifications and adaptations may be made thereto without departing from the scope of the invention as set forth in the claims.